package package01;


import package01.pojo.Chat;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.sql.Timestamp;
import java.util.Scanner;
import java.util.UUID;

/**
 * @Description 1.创建socket对象
 * 2.实例化Chat
 * 3.对象输出流将数据传送到客户端
 * @Author zzj
 * @Date 2020/7/21 17:52
 **/
public class Client {
    public static void main(String[] args) {
        // 提示用户输入昵称
        System.out.println("输入用户名：");
        Scanner sc = new Scanner(System.in);


        // 用户的昵称
        String nickname = sc.nextLine();

        // Socket:客户端套接字：两机器间通讯的端点
        Socket socket = null;
        try {
            // 死循环
            while (true) {
                // 提示用户输入信息
                System.out.println("输入信息：");
                String message = sc.nextLine();
                // 访问服务端:创建流套接字并将其连接到指定主机的端口号9000上
                socket = new Socket("127.0.0.1", 9000);

                // 打印当前socket
                System.out.println(socket);

                // 对象输出流：发送数据 ： 将数据封装在Socket 对象中，以流的形式
                OutputStream os = socket.getOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(os);

                // 封装Chat 对象
                Chat chat = new Chat();
                // 设置id随机的UUID，将-替换成”“，首字母大写
                chat.setId(UUID.randomUUID().toString().replace("-", "").toUpperCase());
                // nickname
                chat.setNickname(nickname);
                // message
                chat.setMessage(message);
                // createtime
                chat.setCreateTime(new Timestamp(System.currentTimeMillis()));
                // status:0代表未读
                chat.setState("0");

                // 发送对象（对象输出流）
                oos.writeObject(chat);

                // 清空缓冲区
                oos.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
